namespace NFreeMarker.Cache
{
    /**
     * Cache storage abstracts away the storage aspects of a cache - associating
     * an object with a key, retrieval and removal via the key. It is actually a
     * small subset of the {@link java.util.Map} interface. 
     * The implementations can be coded in a non-threadsafe manner as the natural
     * user of the cache storage, {@link TemplateCache} does the necessary
     * synchronization.
     * @author Attila Szegedi
     * @version $Id: CacheStorage.java,v 1.2 2003/08/08 10:10:58 szegedia Exp $
     */

    public interface ICacheStorage
    {
        object Get(object key);
        void Put(object key, object value);
        void Remove(object key);
        void Clear();
    }
}